Amazon Aurora が Graviton3 搭載インスタンス(R7g)をサポートしました
2023年5月11日、Amazon Aurora が 「R7g」、 AWSの子会社が開発する ArmアーキテクチャのCPU、 Graviton3 を搭載する インスタンスファミリーがサポートされました。
新しい「「R7g」、前世代の Graviton2 を搭載する 「R6g」 と比較して、最大30%の性能向上、20%のコストパフォマンスが改善されるとされています。
早速、AWS環境上で試す機会がありましたので、紹介させていただきます。
Amazon Aurora MySQL and PostgreSQL support for Graviton3 based R7g instance family
リージョン
「R7g」をサポートするリージョンは4リージョンです。(2023年5月時点)
- 米国東部 (バージニア北部、オハイオ)
- 米国西部 (オレゴン)
- 欧州 (アイルランド)
DBエンジンバージョン
「R7g」をサポートするエンジンバージョンは、以下以降となります。
MySQL互換
- バージョン 3.03.1
PostgreSQL互換
- バージョン 13.10
- バージョン 14.7
- バージョン 15.2
DB起動
オレゴンリージョンで、MySQL8互換のAuroraを「R7g」で起動してみました。
DBインスタンスクラス
db.r7g.large から db.r7g.16xlargeの選択が可能になりました
アベイアビリティゾーン
執筆当日、「R7g」が起動可能なAZは 2つでした。
- us-west-2b (usw2-az1)
- us-west-2c (usw2-az3)
以下のAZ、前世代の「R6g」は起動可能でしたが、「R7g」は未サポートでした。
- us-west-2a (usw2-az2)
- us-west-2d (usw2-az4)
今後、「R7g」をサポートするAZは拡張されると予想されますが、直近に稼働中のインスタンスを「R7g」へ変更する場合はご注意ください。
性能比較
「db.r7g.large」と「db.r6g.large」の クラスタを同一のAZに起動。
EC2から sysbench を実行し、5分間の簡易な負荷テストを試みました。
sysbench
実行環境 - AMI: Amazon Linux 2023 AMI 2023.0.20230503.0 x86_64 HVM kernel-6.1 - スペック: c6i.large
sudo su - ec2-user sudo dnf install postgresql15 postgresql-libs mariadb105 luajit -y sudo rpm -ivh http://rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/s/sysbench-1.0.20-5.fc34.x86_64.rpm DBHOST='database-1.xxxxxxx.us-west-2.rds.amazonaws.com' DBPASS='xxxxxxx' echo 'CREATE DATABASE benchmark' | mysql -h ${DBHOST} -P 3306 -u admin -p # prepare sysbench --db-driver=mysql \ --mysql-host=${DBHOST} \ --mysql-user=admin \ --mysql-password=${DBPASS} \ --mysql-db=benchmark \ oltp_read_write \ prepare # run sysbench --db-driver=mysql \ --mysql-host=${DBHOST} \ --mysql-user=admin \ --mysql-password=${DBPASS} \ --mysql-db=benchmark \ --time=300 \ --threads=8 \ oltp_read_write \ run
結果
「R7g」の トランザクション、クエリ性能、「R6g」と比較し 約24%の 向上が確認できました。
項目 | R7g | R6g | 向上率 |
---|---|---|---|
transactions ( per sec.) | 614.95 | 464.85 | 24% |
queries (per sec.) | 12305.59 | 9300.67 | 24% |
「db.r7g.large
SQL statistics: queries performed: read: 2584596 write: 727060 other: 380212 total: 3691868 transactions: 184495 (614.95 per sec.) queries: 3691868 (12305.59 per sec.) ignored errors: 119 (0.40 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 300.0142s total number of events: 184495 Latency (ms): min: 5.14 avg: 13.01 max: 221.99 95th percentile: 20.37 sum: 2399832.97 Threads fairness: events (avg/stddev): 23061.8750/136.57 execution time (avg/stddev): 299.9791/0.00
db.r6g.large
SQL statistics: queries performed: read: 1953364 write: 549908 other: 287022 total: 2790294 transactions: 139461 (464.85 per sec.) queries: 2790294 (9300.67 per sec.) ignored errors: 65 (0.22 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 300.0086s total number of events: 139461 Latency (ms): min: 6.34 avg: 17.21 max: 292.73 95th percentile: 28.67 sum: 2399834.78 Threads fairness: events (avg/stddev): 17432.6250/114.88 execution time (avg/stddev): 299.9793/0.00
パフォーマンスインサイト
sysbench 実行中の DB負荷状況、パフォーマンスインサイトで確認を試みました。
db.r7g.large
db.r6g.large
SQL別 AAS 比較表
r7g(AAS) | r6g(AAS) | SQL |
---|---|---|
0.28 | 0.27 | UPDATE sbtest1 SET k = k + ? WHERE id = ? |
0.25 | 0.25 | SELECT DISTINCTROW c FROM sbtest1 WHERE id BETWEEN ? AND ? ORDER BY c |
0.22 | 0.42 | SELECT c FROM sbtest1 WHERE id = ? |
0.21 | 0.16 | UPDATE sbtest1 SET c = ? WHERE id = ? |
0.16 | 0.16 | DELETE FROM sbtest1 WHERE id = ? |
0.12 | 0.17 | SELECT c FROM sbtest1 WHERE id BETWEEN ? AND ? |
0.11 | 0.21 | SELECT c FROM sbtest1 WHERE id BETWEEN ? AND ? ORDER BY c |
0.1 | 0.15 | SELECT SUM ( k ) FROM sbtest1 WHERE id BETWEEN ? AND ? |
0.07 | 0.05 | COMMIT |
0.04 | 0.09 | INSERT INTO sbtest1 ( id , k , c , pad ) VALUES (...) |
平均アクティブセッション(AAS) の結果より、「R7g」は ピークが低めになる事。 また、SELECT、参照処理の所要が 「R6g」より 短縮する傾向が伺えました。
価格
北米リージョン、1時間あたりのオンデマンド価格を比較しました。
「R7g」は「R6g」と比較し 約6% 高い価格が設定されています。
Aurora Standard
インスタンス | R7g | R6g |
---|---|---|
large | $0.28 | $0.26 |
xlarge | $0.55 | $0.52 |
2xlarge | $1.11 | $1.04 |
4xlarge | $2.21 | $2.08 |
8xlarge | $4.42 | $4.15 |
12xlarge | $6.63 | $6.23 |
16xlarge | $8.84 | $8.31 |
Aurora Standard
インスタンス | R7g | R6g |
---|---|---|
large | $0.36 | $0.34 |
xlarge | $0.72 | $0.68 |
2xlarge | $1.44 | $1.35 |
4xlarge | $2.87 | $2.70 |
8xlarge | $5.75 | $5.40 |
12xlarge | $8.62 | $8.10 |
16xlarge | $11.50 | $10.80 |
まとめ
新しい 「R7g」を搭載するAurora、従来の「R6g」と比較して 利用費は若干上昇しますが、 世代更新による IO性能、ネットワーク帯域、CPU処理能力などの強化により、値上げ分を上回る 高性能なDBとしての利用が期待できます。
今回は極めて時間、簡単な負荷テストの紹介となりましたが、実際のワークロードなどでの有効性についても、確認を試みたいと思います。